#include <bits/stdc++.h>

using namespace std;
const int maxn=1e5+10;
int n,ans;
int t[maxn],arr[maxn],sum[maxn];

//归并排序
void merge_sort(int l,int r)
{
    if(l==r)return;
    int mid=(l+r)/2;
    merge_sort(l,mid);
    merge_sort(mid+1,r);

    for(int i=l; i<=r; i++)
    {
        t[i]=sum[i];
    }
    int i=l,j=mid+1;
    for(int cur=l; cur<=r; cur++)
    {
        if(i>mid) sum[cur]=t[j++];
        else if(j>r) sum[cur]=t[i++];
        else if(t[j]>=t[i]) sum[cur]=t[i++];
        else
        {
            ans+=mid-i+1;//统计答案
            sum[cur]=t[j++];
        }
    }
    return;
}

int main()
{
    scanf("%d",&n);
    for(int i=1; i<=n; i++)
    {
        scanf("%d",&arr[i]);
    }
    //求后缀和
    for(int i=n; i>=1; i--)
    {
        sum[i]=sum[i+1]+arr[i];
    }
    for(int i=1;i<=n;i++){
        printf("%d ",sum[i]);
    }
    merge_sort(1,n+1);
    printf("%lld",ans);

    return 0;
}